現在的書有千百種,因此挑選到自己適合的書本就更有難度,因此我想寫一個網站是關於線上書局的網站,符合相關收尋條件的書本列出來供想到的讀者選擇,因此我寫了一個node.js程式的書本購物系統
這個node.js實現了一個線上書局,包括書籍的新增、查詢、修改和刪除功能。我將使用Express.js作為Web伺服器框架,並將書籍資料存儲在一個簡單的資料庫中。
我已經安裝了Node.js、Express.js和一個Node.js資料庫,如MongoDB或SQLite。
接下來,創建一個新的資料夾,然後在該資料夾中創建一個package.json
檔案,並且安裝Express.js和其他必要的庫。
npm init -y
npm install express mongoose body-parser
我使用MongoDB作為資料庫,請確保已安裝MongoDB,然後創建一個名為online_bookstore
的MongoDB資料庫。
現在,在我的資料夾中創建一個app.js
檔案
const express = require('express');
const mongoose = require('mongoose');
const bodyParser = require('body-parser');
const app = express();
const port = 3000;
// 連接到MongoDB資料庫
mongoose.connect('mongodb://localhost/online_bookstore', {
useNewUrlParser: true,
useUnifiedTopology: true
});
// 定義書籍資料模式
const bookSchema = new mongoose.Schema({
title: String,
author: String,
genre: String
});
// 創建書籍模型
const Book = mongoose.model('Book', bookSchema);
// 使用body-parser中間件處理JSON和表單資料
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());
// GET端點,用於檢索所有書籍
app.get('/books', async (req, res) => {
const books = await Book.find();
res.json(books);
});
// GET端點,用於檢索特定ID的書籍
app.get('/books/:id', async (req, res) => {
const book = await Book.findById(req.params.id);
if (book) {
res.json(book);
} else {
res.status(404).json({ message: 'Book not found' });
}
});
// POST端點,用於新增書籍
app.post('/books', async (req, res) => {
const newBook = new Book(req.body);
const savedBook = await newBook.save();
res.status(201).json(savedBook);
});
// PUT端點,用於更新特定ID的書籍
app.put('/books/:id', async (req, res) => {
const updatedBook = await Book.findByIdAndUpdate(req.params.id, req.body, { new: true });
if (updatedBook) {
res.json(updatedBook);
} else {
res.status(404).json({ message: 'Book not found' });
}
});
// DELETE端點,用於刪除特定ID的書籍
app.delete('/books/:id', async (req, res) => {
const deletedBook = await Book.findByIdAndRemove(req.params.id);
if (deletedBook) {
res.json(deletedBook);
} else {
res.status(404).json({ message: 'Book not found' });
}
});
// 啟動伺服器
app.listen(port, () => {
console.log(`Server is running on port ${port}`);
});
這個程式使用了MongoDB來儲存書籍資料,並提供了RESTful API端點,以進行書籍的新增、查詢、修改和刪除操作。我可以使用Postman或Curl等工具來測試API端點。
要運行這個程式,只需在終端中輸入以下命令:
node app.js
然後,我可以使用相應的API端點進行書籍操作,如新增、查詢、修改和刪除。